package com.leetcode_Onequestion;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author jsh
 * @Date 2023/3/16 23:18
 * @Version 1.0
 */
public class leetcode_2488 {
    public static void main(String[] args) {

    }


    public static int countSubarrays(int[] nums, int k) {
        int kIndex = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == k){
                kIndex = i;
                break;
            }
        }
        Map<Integer,Integer> map = new HashMap<>();
        map.put(0, 1);
        int ans = 0, sum = 0;
        for (int i = 0; i < nums.length; i++) {
            sum += sign(nums[i] - k);
            if (i < kIndex){

                map.put(sum, map.getOrDefault(sum, 0) + 1);
            }else {
                int l  = map.getOrDefault(sum, 0);
                int r = map.getOrDefault(sum -1,0);
                ans +=  l + r;
            }
        }
        return ans;
    }


    public static int sign(int n){
        if (n == 0)
            return 0;
        return n > 0 ? 1 : -1;
    }



}
